fix(desktop): bound the workbar panel grid row to stop terminal fit/resize loop - #4967
fix(desktop): bound the workbar panel grid row to stop terminal fit/resize loop#4967faga295 wants to merge 1 commit into
Conversation
me2seeks
left a comment
There was a problem hiding this comment.
Automated review by OpenAI Codex, operated by me2seeks, at 148344f4fa4f31ab2439fbbfeaca946a483ad0b1. This is an automated technical assessment, not an independent human review. Approval is submitted at the operator's explicit direction.
No actionable findings. Traced the Section height:100% inner wrapper and xterm fit/ResizeObserver loop. The explicit minmax row bounds both right and bottom overlay faces while preserving the face scroll owner. Exact-source Chromium sizing reproduction verified the right-face fix. After #5000 landed, merge-tree reports only the overlapping shell.css row-constraint conflict; this is a mechanical reconciliation of the same rule, not a correctness objection.
- Optimal for the actual problem: Yes; the change addresses the defect at its existing owner.
- Production code that can be deleted: None identified.
- Low-quality tests that can be deleted or replaced: None identified.
- Deeper refactor: No deeper refactor is needed.
- Ready to merge: Content approved under the operator's explicit instruction that mechanical conflicts do not block approval. Not mergeable until shell.css conflict is resolved and required test passes.
- Residual risks / verification: Current required test is absent (the green rollup only contains label). Electron terminal E2E was reviewed but not rerun locally. Mechanical conflict with #5000 remains. User-visible terminal layout changes; material protected-area changes require independent human review under CONTRIBUTING.md.
148344f to
bdc8d97
Compare
|
This appears to be already fixed in the latest code, so I'm closing this PR. Thanks for taking a look! |
Summary
Fixes #4966
Root cause — a layout feedback loop:
.maka-session-workbar-panel[data-overlay][data-placement="right"]isdisplay: gridbut declared no explicit row track, so content fell into an implicitautorow;autorow's size includes its contents' min-content contribution, so the Section inner wrapper (height: 100%) and the terminal panel (height: 100%) grew with xterm's output;ResizeObserver→ xtermfit()→ layout changed → observer fired again: aResizeObserver → fit → resize → growloop on every burst of output.The fix declares an explicit track,
grid-template-rows: minmax(0, 1fr): the1frsizes the track purely from the container's definite height so content no longer participates in track sizing, andmin 0removes the auto row's min-content floor — cutting the loop at its root.Testing
Terminal fits its panel without growing and stops when its Session changes): across 12 consecutiverequestAnimationFrameticks the xterm host stays within the panel bounds. Fails without the CSS change, passes with it.session-workbar.spec.tspasses (6/6); verified the other overlay panels (review / browser / files / inspector / side-chat) haveheight: 100%roots and are unaffected, and the wide-window collapse animation'sdisplay: gridrestore rule still applies.npm run typecheckandcheck:e2e-budgetpass.